import { PageDTO } from '@dto/common/page.dto';
import { Rule, RuleType } from '@midwayjs/validate';

export class CreateGatewayDTO extends PageDTO {
  // 网关MAC地址
  @Rule(RuleType.string().required().length(17))
  mac: string;

  // 所属班级ID
  @Rule(RuleType.number().required())
  classId: number;

  // 网关的场景描述
  @Rule(RuleType.string().allow(null))
  scene: string | null;

  // 是否户外设备
  @Rule(RuleType.boolean().default(false))
  outdoor: boolean;

  // 网关的固件版本
  @Rule(RuleType.string().allow(null))
  versionFs: string | null;

  // 网关的固件文件名
  @Rule(RuleType.string().allow(null))
  versionBin: string | null;

  // 网关照片，非必填
  @Rule(RuleType.string().allow(null))
  photo: string | null;
}

export class UpdateGatewayDTO {
  // 网关MAC地址，非必填
  @Rule(RuleType.string().allow(null).length(17))
  mac: string | null;

  // 所属班级ID，非必填
  @Rule(RuleType.number().allow(null))
  classId: number | null;

  // 网关的场景描述，非必填
  @Rule(RuleType.string().allow(null))
  scene: string | null;

  // 是否户外设备，非必填
  @Rule(RuleType.boolean().default(false))
  outdoor: boolean;

  // 网关的固件版本，非必填
  @Rule(RuleType.string().allow(null))
  versionFs: string | null;

  // 网关的固件文件名，非必填
  @Rule(RuleType.string().allow(null))
  versionBin: string | null;

  // 网关照片，非必填
  @Rule(RuleType.string().allow(null))
  photo: string | null;
}


export class getGatewayByMac_Wb extends PageDTO {
  @Rule(RuleType.string().allow(null))
  mac?: string; // 网关地址

  // @Rule(RuleType.string())
  // last_adv_time?: string;

}